package com.xyzwps.lib.express.router.annotation.openapi;

import com.xyzwps.lib.openapi.element.SchemaFormat;

public @interface IntegerSchema {
    String title() default "";

    String description() default "";

    boolean deprecated() default false;

    long defaultValue() default 0L;

    SchemaFormat format() default SchemaFormat.UNKNOWN;

    long example() default 0L;


    /**
     * Non-positive value would be ignored.
     */
    long multipleOf() default 0;

    /**
     * The maximum value of integer. {@link Long#MIN_VALUE} would be ignored.
     *
     * @return the maximum value of integer
     */
    long maximum() default Long.MIN_VALUE;

    /**
     * The minimum value of integer. {@link Long#MAX_VALUE} would be ignored.
     *
     * @return the minimum value of integer
     */
    long minimum() default Long.MAX_VALUE;

    /**
     * The exclusiveMaximum of integer. {@link Long#MIN_VALUE} would be ignored.
     *
     * @return the exclusiveMaximum of integer
     */
    long exclusiveMaximum() default Long.MIN_VALUE;

    /**
     * The exclusiveMinimum of integer. {@link Long#MAX_VALUE} would be ignored.
     *
     * @return the exclusiveMinimum of integer
     */
    long exclusiveMinimum() default Long.MAX_VALUE;

    boolean ignored() default false;
}
